// gulp的入口文件


//1. 在gulp中定义一个任务
// exports.foo = done => {
//     console.log('foo task working~');
//     done();//表示任务完成
// }


//2. 导出一个default方法：gulp构建过程核心工作原理
// const fs = require('fs');
// const { Transform } = require('stream');
// exports.default = () => {

//     //创建一个文件读取流
//     const read = fs.createReadStream('normalize.css');

//     //创建一个文件写入流
//     const write = fs.createWriteStream('normalize.min.css');

//     //文件转换流
//     const transform = new Transform({
//         transform: (chunk, encoding, callback) => {
//             //核心转换过程实现
//             /**
//              * chunk => 读取流中读取到的内容
//              * 1. 因为读出的内容是一个字节数组，所以通过toString的方式，把拿到的内容转换成字符串
//              * 2. 替换掉空白字符和注释代码
//              * 3. callback是一个错误有限的函数，所以第一个参数应该传入错误对象，如果没有错误则传入null
//              */
//             const input = chunk.toString();
//             const output = input.replace(/\s+/g, '').replace(/\/\*.+?\*\//g, '');
//             callback(null, output);
//         }
//     });

//     //把读取出来的文件流导入写入文件流
//     read
//         .pipe(transform)//转换代码
//         .pipe(write);//写入

//     return read;
// }


//3. 导出一个default方法：gulp文件操作API
const { src, dest } = require('gulp');
const cleanCss = require('gulp-clean-css');
const rename = require('gulp-rename');

exports.default = () => {
    // return src('./normalize.css')
    //     .pipe(dest('dist'));
    return src('./*.css')
        .pipe(cleanCss())
        .pipe(rename({extname:'.min.css'}))
        .pipe(dest('dist'));

}